/**
题目:
    给定一个排序链表，删除所有重复的元素，使得每个元素只出现一次。
    示例 1:
    输入: 1->1->2
    输出: 1->2
    示例 2:
    输入: 1->1->2->3->3
    输出: 1->2->3
思路: 一次遍历并比较
效果:
执行用时：0 ms, 在所有 Go 提交中击败了100.00%的用户
内存消耗：3.1 MB, 在所有 Go 提交中击败了26.06%的用户
*/
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func deleteDuplicates(head *ListNode) *ListNode {
    if head == nil || head.Next == nil{
        return head
    }
    cur := head
    for cur != nil && cur.Next != nil {
        if cur.Val == cur.Next.Val{
            cur.Next = cur.Next.Next
        }else{
            cur = cur.Next
        }
    }
    return head
}